//import 'dart:async';
//
//import 'package:flutter/material.dart';
//import 'package:osc/models/entity/widget_item/banner_bean.dart';
//import 'package:osc/ui/widgets/image_loader.dart';
//import 'package:osc/utils/pd_util.dart';
//
//const MAX_COUNT = 0x7fffffff;
//
/////
///// Item的点击事件
/////
//typedef void OnBannerItemClick(int position, BannerBean entity);
//
/////
///// 自定义ViewPager的每个页面显示
/////
//typedef Widget CustomBuild(int position, BannerBean entity);
//
//class PdBannerWidget extends StatefulWidget {
//  final double height;
//  final List<BannerBean> datas;
//  final int duration;
//  final double pointRadius;
//  final Color selectedColor;
//  final Color unSelectedColor;
//  final Color textBackgroundColor;
//  final bool isHorizontal;
//
//  final OnBannerItemClick bannerPress;
//  final CustomBuild build;
//
//  PdBannerWidget(this.height, this.datas,
//      {Key key,
//        this.duration = 5000,
//        this.pointRadius = 3.0,
//        this.selectedColor = Colors.white,
//        this.unSelectedColor = Colors.black54,
//        this.textBackgroundColor = Colors.black26,
//        this.isHorizontal = true,
//        this.bannerPress,
//        this.build})
//      : super(key: key);
//
//  @override
//  BannerState createState() {
//    return new BannerState();
//  }
//}
//
//class BannerState extends State<PdBannerWidget> {
//  Timer timer;
//  int selectedIndex = 0;
//  PageController controller;
//
//  @override
//  void initState() {
//    double current = (widget.datas != null && widget.datas.length > 0)
//        ? (MAX_COUNT / 2) - ((MAX_COUNT / 2) % widget.datas.length)
//        : 0.0;
//    controller = PageController(initialPage: current.toInt());
//    _initPageAutoScroll();
//    super.initState();
//  }
//
//  _initPageAutoScroll() {
//    start();
//  }
//
//  @override
//  void didUpdateWidget(PdBannerWidget oldWidget) {
//    super.didUpdateWidget(oldWidget);
//  }
//
//  start() {
//    stop();
//    timer = Timer.periodic(Duration(milliseconds: widget.duration), (timer) {
//      if(widget.datas != null && widget.datas.length > 0 && controller != null && controller.page != null) {
//        controller.animateToPage(controller.page.toInt() + 1,
//            duration: Duration(milliseconds: 300), curve: Curves.linear);
//      }
//    });
//  }
//
//  stop() {
//    timer?.cancel();
//    timer = null;
//  }
//
//  @override
//  void dispose() {
//    stop();
//    super.dispose();
//  }
//
//  @override
//  Widget build(BuildContext context) {
//    return new Container(
//      height: widget.height,
//      color: Colors.black12,
//      child: Stack(
//        children: <Widget>[
//          getViewPager(),
//          new Align(
//            alignment: Alignment.bottomCenter,
//            child: IntrinsicHeight(
//              child: Container(
//                padding: EdgeInsets.all(6.0),
//                color: widget.textBackgroundColor,
//                child: getBannerTextInfoWidget(),
//              ),
//            ),
//          ),
//        ],
//      ),
//    );
//  }
//
//  Widget getViewPager() {
//    return PageView.builder(
//      itemCount: (widget.datas != null && widget.datas.length > 0) ? MAX_COUNT : 0,
//      controller: controller,
//      onPageChanged: onPageChanged,
//      itemBuilder: (context, index) {
//        return InkWell(
//            onTap: () {
//              if (widget.bannerPress != null)
//                widget.bannerPress(selectedIndex, widget.datas[selectedIndex]);
//            },
//            child: ImageLoader(url: widget.datas[index % widget.datas.length].imageUrl),
//        );
//      },
//    );
//  }
//
//  Widget getSelectedIndexTextWidget() {
//    return (widget.datas != null && widget.datas.length > 0 && selectedIndex < widget.datas.length)
//        ? buildTitle(widget.datas[selectedIndex].title)
//        : Text('');
//  }
//
//  Widget buildTitle(String text){
//    return new Text(
//      text,
//      softWrap: true,
//      maxLines: 3,
//      overflow: TextOverflow.ellipsis,
//      style: TextStyle(
//          color: Colors.white, fontSize: 12.0, decoration: TextDecoration.none),
//    );
//  }
//
//  Widget getBannerTextInfoWidget() {
//    if (widget.isHorizontal) {
//      return Row(
//        mainAxisAlignment: MainAxisAlignment.spaceBetween,
//        children: <Widget>[
//          new Expanded(
//            flex: 1,
//            child: getSelectedIndexTextWidget(),
//          ),
//          Expanded(
//            flex: 0,
//            child: Row(
//              mainAxisSize: MainAxisSize.min,
//              children: circle(),
//            ),
//          ),
//        ],
//      );
//    } else {
//      return new Column(
//        mainAxisAlignment: MainAxisAlignment.spaceBetween,
//        children: <Widget>[
//          getSelectedIndexTextWidget(),
//          IntrinsicWidth(
//            child: Row(
//              children: circle(),
//            ),
//          ),
//        ],
//      );
//    }
//  }
//
//  List<Widget> circle() {
//    List<Widget> circle = [];
//    if(widget.datas == null){
//      return circle;
//    }
//    for (var i = 0; i < widget.datas.length; i++) {
//      circle.add(Container(
//        margin: EdgeInsets.all(2.0),
//        width: widget.pointRadius * 2,
//        height: widget.pointRadius * 2,
//        decoration: new BoxDecoration(
//          shape: BoxShape.circle,
//          color: selectedIndex == i
//              ? widget.selectedColor
//              : widget.unSelectedColor,
//        ),
//      ));
//    }
//    return circle;
//  }
//
//  onPageChanged(index) {
//    if(widget.datas == null) return;
//    selectedIndex = index % widget.datas.length;
//    setState(() {});
//  }
//
//  String getUrl(String url){
//    return PdUtil.getFullUrl(url);
//  }
//}
//
